home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / apps / wordproc / japworpr.arc / WORDUTA3.GFA (.txt) < prev   
GFA-BASIC Atari  |  1990-08-17  |  43KB  |  2,180 lines

  1. '
  2. '  JAPANESE WORD PROCESSOR.
  3. '
  4. '                    Programming by M.UTASHIRO     START         1990/07/10
  5. '                                                  VERSION 1.00  1990/07/28
  6. '                                                  VERSION 1.02  1990/08/04
  7. '                                                  VERSION 1.50  1990/08/07
  8. '                                                  VERSION 1.51  1990/08/07
  9. '                                                  VERSION 1.60  1990/08/14
  10. '                                                  VERSION 1.80  1990/08/14
  11. '
  12. '
  13. '
  14. SOUND 1,15,10,5,12
  15. SOUND 1,15,10,4,12
  16. SOUND 1,0,0,0,0
  17. word_version
  18. initial
  19. initial_data
  20. asm_load
  21. '
  22. CLS
  23. program_name
  24. PBOX 10,370,628,395
  25. sub_text_pic
  26. ' main_text_plane
  27. redraw
  28. current_cursol
  29. key
  30. '
  31. > PROCEDURE key
  32.   '
  33.   DO
  34.     tinput%=INP(2)
  35.     l$=CHR$(tinput%)
  36.     '    PRINT AT(1,1);tinput%
  37.     '    DELAY 1
  38.     SELECT tinput%
  39.     CASE 0
  40.     CASE 1                ! CONTROL A : JIS CORD INPUT
  41.       cont_a
  42.     CASE 2                ! CONTROL B : INSERT LINE
  43.       line_ins
  44.     CASE 3 TO 4
  45.     CASE 5                ! CONTROL E : END CHARACTER
  46.       cont_e
  47.     CASE 6 TO 7
  48.     CASE 8                ! BACK SPACE
  49.       back_space
  50.     CASE 9                ! TAB
  51.       tab
  52.     CASE 10 TO 11
  53.     CASE 12               ! CONTROL L : CHANGE COLUMN
  54.       change_column
  55.     CASE 13               ! CR
  56.       transform
  57.     CASE 14               ! CONTROL N : NEW
  58.       new_file
  59.     CASE 15               ! CONTROL O : CHANGE PAGELINE
  60.       change_pageline
  61.     CASE 16               ! CONTROL P : PAGE CHARACTER
  62.       cont_p
  63.     CASE 17
  64.     CASE 18               ! CONTROL R : CR CONVERTOR
  65.       cr_conv
  66.     CASE 19
  67.     CASE 20               ! CONTROL T : SET TAB
  68.       cont_t
  69.     CASE 21 TO 23
  70.     CASE 24               ! CONTROL X : MERGE TEXT
  71.       text_merge
  72.     CASE 25 TO 26
  73.     CASE 27               ! ESCAPE
  74.       esc_quit
  75.     CASE 28 TO 30
  76.     CASE 31
  77.       cont_del
  78.     CASE 127              ! DELETE
  79.       del
  80.     CASE 128 TO 145
  81.     CASE 146
  82.     CASE 147 TO 152
  83.     CASE 153              ! alt-P
  84.       text_print
  85.     CASE 154 TO 171
  86.     CASE 172              ! alt-Z
  87.       henkan
  88.     CASE 173 TO 186
  89.     CASE 187              ! F1
  90.       hira_kata_conv
  91.     CASE 188              ! F2
  92.       kana_hira_conv
  93.     CASE 189              ! F3
  94.       lower_case
  95.     CASE 190              ! F4
  96.       upper_case
  97.     CASE 191              ! F5
  98.       no_conv
  99.     CASE 192              ! F6
  100.       undo_no_conv
  101.     CASE 193              ! F7
  102.       up_page
  103.     CASE 194              ! F8
  104.       dn_page
  105.     CASE 195              ! F9
  106.       bun_save
  107.     CASE 196              ! F10
  108.       bun_load
  109.     CASE 197 TO 198
  110.     CASE 199              ! CLR/HOME
  111.       clr_home
  112.     CASE 200              ! UP ARROW
  113.       up_arrow
  114.     CASE 201 TO 202
  115.     CASE 203              ! LEFT ARROW
  116.       left_arrow
  117.     CASE 204
  118.     CASE 205              ! RIGHT ARROW
  119.       right_arrow
  120.     CASE 206 TO 207
  121.     CASE 208              ! DOWN ARROW
  122.       dn_arrow
  123.     CASE 209
  124.     CASE 210              ! INSERT
  125.       ins
  126.     CASE 211 TO 224
  127.     CASE 225              ! UNDO
  128.     CASE 226              ! HELP
  129.       help_1
  130.     CASE 227 TO 255
  131.     DEFAULT
  132.       text1$=text1$+l$
  133.       text$=text$+l$
  134.       text_check
  135.       PRINT AT(3,23);"                    "
  136.       PRINT AT(3,23);text$
  137.     ENDSELECT
  138.   LOOP
  139.   '
  140. RETURN
  141. '
  142. > PROCEDURE asm_load
  143.   '
  144.   RESTORE asm1
  145. asm1:
  146.   DATA $206F,$0004,$226F,$0008,$202F,$000C,$7201,$D1C0
  147.   DATA $1091,$5288,$5289,$1091
  148.   DATA $D1FC,$0000,$004F,$5289,$5281,$B2BC,$0000,$0011,$66E6
  149.   DATA $4E75
  150.   '
  151.   FOR i%=1 TO 22
  152.     READ j%
  153.     asm$=asm$+MKI$(j%)
  154.   NEXT i%
  155.   '
  156.   asm%=V:asm$
  157.   screen%=XBIOS(2)
  158.   '
  159. RETURN
  160. '
  161. > PROCEDURE change_pageline
  162.   '
  163.   current_cursol
  164.   '
  165.   DO
  166.     PRINT AT(3,23);"                                                       "
  167.     PRINT AT(3,23);"INPUT LINE PAR PAGE (2 TO 50) ";
  168.     INPUT pageline%
  169.   LOOP UNTIL pageline%>=2 AND pageline%<=50
  170.   PRINT AT(3,23);"                                                       "
  171.   PRINT AT(3,23);text$
  172.   '
  173.   current_cursol
  174.   '
  175. RETURN
  176. '
  177. > PROCEDURE change_column
  178.   '
  179.   ALERT 1," CHANGE COLUMN.  | TEXT ALL CLEAR !  ",1,"CANCEL|  OK  ",l%
  180.   IF l%=2
  181.     DO
  182.       PRINT AT(3,23);"                                            "
  183.       PRINT AT(3,23);"INPUT COLUMN. (2 TO 38) ";
  184.       INPUT max_xposition%
  185.     LOOP UNTIL max_xposition%>=2 AND max_xposition%<=38
  186.     DEC max_xposition%
  187.     ARRAYFILL bun&(),spacechara%
  188.     BOUNDARY 0
  189.     PBOX 10,25,629,305
  190.     BOUNDARY 1
  191.     kxpos%=0                      ! COLUMN POSITION OF DISPLAY
  192.     kypos%=0                      ! LINE POSITION OF DISPLAY
  193.     tr%=0                         ! SUB TEXT CHARACTER IS...
  194.     no1%=0                        ! NUMBER OF SUB TEXT CHARACTER
  195.     refline%=0                    ! REFERENCE LINE (TOP LINE OF DISPLAY)
  196.     no_conv%=0                    ! NO CONVERT MODE ON/OFF
  197.     end_chara_e%=0                ! END CHARACTER ON/OFF
  198.     text$=""
  199.     redraw
  200.     current_cursol
  201.     sub_text_plane
  202.     PRINT AT(3,23);"                                              "
  203.   ENDIF
  204.   '
  205. RETURN
  206. '
  207. > PROCEDURE cont_p
  208.   '
  209.   chara1%=page_chara%
  210.   chara2%=0
  211.   check_ins
  212.   tr%=1
  213.   display_hira
  214.   tr%=0
  215.   IF kxpos%<>0
  216.     inc_yposition
  217.     current_cursol
  218.   ELSE
  219.     current_cursol
  220.   ENDIF
  221.   '
  222. RETURN
  223. '
  224. > PROCEDURE text_print
  225.   '
  226.   ALERT 1," PRINTER NOT SUPPORTED  | WITH version 1.0  ",1," OK ",l%
  227.   '
  228. RETURN
  229. '
  230. > PROCEDURE help_1
  231.   '
  232.   PBOX 10,25,628,305
  233.   PRINT AT(3,3);"F1      : CONVERT HIRAGANA TO KATAKANA."
  234.   PRINT AT(3,4);"F2      : CONVERT KATAKANA TO HIRAGANA."
  235.   PRINT AT(3,5);"F3      : CONVERT UPPERCASE TO LOWERCASE."
  236.   PRINT AT(3,6);"F4      : CONVERT LOWERCASE TO UPPERCASE."
  237.   PRINT AT(3,7);"F5      : NO CONVERT. ( INPUT CHARACTER DIRECTLY )"
  238.   PRINT AT(3,8);"F6      : CONVERT ROMAN TO HIRAGANA."
  239.   PRINT AT(3,9);"F7      : PAGE UP.   (BEFORE)"
  240.   PRINT AT(3,10);"F8      : PAGE DOWN. (AFTER)"
  241.   PRINT AT(3,11);"F9      : SAVE TEXT."
  242.   PRINT AT(3,12);"F10     : LOAD TEXT."
  243.   PRINT AT(3,16);"HIT ANY KEY, TO NEXT."
  244.   ~INP(2)
  245.   PBOX 10,25,628,305
  246.   PRINT AT(3,3);"CONT-A  : INPUT WITH JIS CORD."
  247.   PRINT AT(3,4);"CONT-B  : INSERT LINE."
  248.   PRINT AT(3,5);"CONT-E  : SHOW OR PUT THE END CHARACTER."
  249.   PRINT AT(3,6);"CONT-L  : CHANGE COLUMN."
  250.   PRINT AT(3,7);"CONT-N  : NEW TEXT. ( CLEAR TEXT )"
  251.   PRINT AT(3,8);"CONT-O  : CHANGE PAGELINE."
  252.   PRINT AT(3,9);"CONT-P  : PUT THE PAGE CHARACTER."
  253.   PRINT AT(3,10);"CONT-R  : CR CONVERT."
  254.   PRINT AT(3,11);"CONT-T  : SET TAB."
  255.   PRINT AT(3,12);"CONT-X  : MERGE TEXT."
  256.   PRINT AT(3,13);"CONT-DEL: DELETE LINE."
  257.   PRINT AT(3,15);"ALT-P   : PRINT TEXT."
  258.   PRINT AT(3,16);"ALT-Z   : CONVERT HIRAGANA TO KANJI."
  259.   PRINT AT(3,19);"HIT ANY KEY, TO TEXT."
  260.   ~INP(2)
  261.   BOUNDARY 0
  262.   PBOX 10,25,628,305
  263.   BOUNDARY 1
  264.   redraw
  265.   current_cursol
  266.   '
  267. RETURN
  268. '
  269. > PROCEDURE cr_conv
  270.   '
  271.   ALERT 2," CR CONVERT.  | ARE YOU SURE ?  ",1,"  OK  |CANCEL",l%
  272.   IF l%=1
  273.     PRINT AT(3,23);"CR CONVERT !"
  274.     '
  275.     IF end_chara_e%=1
  276.       end_c%=1
  277.       end_x%=ec_x%
  278.       end_y%=ec_y%
  279.     ELSE
  280.       end_c%=0
  281.     ENDIF
  282.     '
  283.     IF end_c%=0
  284.       end_x%=max_xposition%
  285.       end_y%=maxline%
  286.       bun&(max_xposition%,maxline%)=end_chara%
  287.       end_c%=1
  288.     ENDIF
  289.     '
  290.     IF end_c%=1
  291.       file_b$=DIR$(0)+"\WORDUTAS.BAK"
  292.       l%=1
  293.       '
  294.       IF l%=1
  295.         OPEN "O",#1,file_b$
  296.         texthead$=MKI$(version_no%)+MKI$(version_sub%)+MKI$(max_xposition%)
  297.         texthead$=LEFT$(texthead$+"                                ",32)
  298.         PRINT #1,texthead$;
  299.         FOR i%=0 TO end_y%
  300.           FOR j%=0 TO max_xposition%
  301.             IF i%=end_y% AND j%>end_x%
  302.             ELSE
  303.               PRINT #1,MKI$(bun&(j%,i%));
  304.             ENDIF
  305.           NEXT j%
  306.         NEXT i%
  307.         CLOSE #1
  308.       ENDIF
  309.     ENDIF
  310.     '
  311.     '
  312.     '
  313.     IF EXIST(file_b$)
  314.       ARRAYFILL bun&(),spacechara%
  315.       OPEN "I",#1,file_b$
  316.       texthead$=INPUT$(32,#1)
  317.       i%=0
  318.       j%=0
  319.       i